#include "TcpServer.hpp"
#include <iostream>
#include <memory>

void Usage(std::string proc)
{
    std::cout << "\n\rUsage: " << proc << " port[1024+]\n"
              << std::endl;
}

// 守护进程化
// ./tcpserver 8080
// 一个session，只能有一个前台进程在运行，键盘信号只能发给前台进程
// 前台和后台都可以向显示器输出信息
// 分别前台还是后台，是通过判断谁拥有键盘文件，后台无法从标准输入中获取数据
int main(int argc, char *argv[])
{
    if (argc != 2)
    {
        Usage(argv[0]);
        exit(UsageError);
    }
    uint16_t port = std::stoi(argv[1]);
    lg.Enable(Classfile);

    // std::unique_ptr<TcpServer> tcp_svr(new TcpServer(port, "127.0.0.1"));
    std::unique_ptr<TcpServer> tcp_svr(new TcpServer(port));
    tcp_svr->InitServer();
    tcp_svr->Start();

    return 0;
}